using System;
using System.Collections;
using System.Data;
using System.Web.UI;
using Anthem;
using App_Code;
using Common;
using MinCultura.Sipa.DataAccess.EntidadesArtes;

public delegate void AdicionarInfraestructuraEntidadDelegate();

namespace web.Controls
{
	/// <summary>
	/// Summary description for AgentesBasicos.
	/// </summary>
	public class Infraestructura : SinicUserControl
	{
		//Delegado para mostror mensajes en la pagina contenedora
		public event Common.Delegados.MostrarMensajeContenedorDelegate MostrarMensajeEvent;
		private Common.Delegados.MostrarMensajeContenedorDelegate MostrarMensaje;

		//Delegados para Eventos del control de Acciones
		public event Common.Delegados.EjecutarAdicionarDelegate EjecutarAdicionarEvent;
		private Common.Delegados.EjecutarAdicionarDelegate EjecutarAdicionar;

		public event Common.Delegados.EjecutarActualizarDelegate EjecutarActualizarEvent;
		private Common.Delegados.EjecutarActualizarDelegate EjecutarActualizar;

		public event Common.Delegados.EjecutarEliminarDelegate EjecutarEliminarEvent;
		private Common.Delegados.EjecutarEliminarDelegate EjecutarEliminar;


		public event Delegados.RegresarDelegate RegresarEvent;
		private Delegados.RegresarDelegate Regresar;

		protected Anthem.ImageButton btnRegresar1;
		public UsrControls.WccAcciones WccAcciones1;
		protected Anthem.ImageButton btnRegresar2;
		public UsrControls.WccAcciones WccAcciones2;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion1;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion2;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion3;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion4;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion5;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion6;
		protected System.Web.UI.HtmlControls.HtmlInputHidden txtGrupoActivo;
		protected System.Web.UI.HtmlControls.HtmlTableCell tdGrupoInscripcion7;
		protected InfraestructuraCaracterizacion ucCaracterizacion;
		protected InfraestructuraTipoCapacidad ucTipoCapacidad;
		protected InfraestructuraEquipos ucEquipos;
		protected InfraestructuraEscenario ucEscenario;
		protected InfraestructuraPublicosIngresos ucPublicosIngresos;
		protected InfraestructuraServicios ucServicios;
		protected InfraestructuraTramoya ucTramoya;
		protected Anthem.LinkButton lnkTipoCapacidad;
		protected Anthem.LinkButton lnkServicios;
		protected Anthem.LinkButton lnkEscenario;
		protected Anthem.LinkButton lnkTramoya;
		protected Anthem.LinkButton lnkEquipos;
		protected Anthem.LinkButton lnkPublicosIngresos;
		protected Anthem.LinkButton lnkCaracterizacion;		

		#region - Eventos

		private void Page_Load(object sender, EventArgs e)
		{
			MostrarMensaje = MostrarMensajeEvent;
			EjecutarAdicionar = EjecutarAdicionarEvent;
			EjecutarActualizar = EjecutarActualizarEvent;
			EjecutarEliminar = EjecutarEliminarEvent;
			Regresar = RegresarEvent;

			ucTipoCapacidad.CambioAforoEvent +=new CambioAforoDelegate(ucTipoCapacidad_CambioAforoEvent);
			if (!IsPostBack)
			{
				Manager.Register(this);

				ArrayList arrPermisos = new ArrayList();
				arrPermisos.Add(Utilidad.Acciones.Adicionar);
				arrPermisos.Add(Utilidad.Acciones.Actualizar);
				arrPermisos.Add(Utilidad.Acciones.Eliminar);
				WccAcciones1.Permisos = arrPermisos;
				WccAcciones2.Permisos = arrPermisos;

				WccAcciones1.VerificarEstado = false;
				WccAcciones2.VerificarEstado = false;

				if (this.Identificador == 0)
				{
					ModoAdicionar();				
				}
				else
				{
					WccAcciones1.Accion = Utilidad.Acciones.Actualizar;
					WccAcciones2.Accion = Utilidad.Acciones.Actualizar;

					ucCaracterizacion.EnabledValidator = true;
					ucTipoCapacidad.EnabledValidator = false;
					ucServicios.EnabledValidator = false;
					ucEscenario.EnabledValidator = false;
					ucTramoya.EnabledValidator = false;
					ucEquipos.EnabledValidator = false;
					ucPublicosIngresos.EnabledValidator = false;				}
			}

			btnRegresar1.Attributes.Add("onclick", "return confirmReturn();");
			btnRegresar2.Attributes.Add("onclick", "return confirmReturn();");
		}

		private void ucTipoCapacidad_CambioAforoEvent(string capacidadMaxSillas)
		{
			ucPublicosIngresos.CapacidadSillas = capacidadMaxSillas;
		}

		private void btnRegresar1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			Regresar();
		}

		private void WccAcciones1_Add_OnClick(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			EjecutarAdicionar();
		}

		private void WccAcciones1_Update_OnClick(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			EjecutarActualizar();
		}

		private void WccAcciones1_Delete_OnClick(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			EjecutarEliminar();
		}


		private void lnkCaracterizacion_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = true;
			ucEquipos.EnabledValidator = false;
			ucEscenario.EnabledValidator = false;
			ucPublicosIngresos.EnabledValidator = false;
			ucServicios.EnabledValidator = false;
			ucTipoCapacidad.EnabledValidator = false;
			ucTramoya.EnabledValidator = false;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(1,7,'GrupoInscripcion');</script>");
		}

		private void lnkTipoCapacidad_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = false;
			ucEquipos.EnabledValidator = false;
			ucEscenario.EnabledValidator = false;
			ucPublicosIngresos.EnabledValidator = false;
			ucServicios.EnabledValidator = false;
			ucTipoCapacidad.EnabledValidator = true;
			ucTramoya.EnabledValidator = false;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(2,7,'GrupoInscripcion');</script>");
		}

		private void lnkServicios_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = false;
			ucEquipos.EnabledValidator = false;
			ucEscenario.EnabledValidator = false;
			ucPublicosIngresos.EnabledValidator = false;
			ucServicios.EnabledValidator = true;
			ucTipoCapacidad.EnabledValidator = false;
			ucTramoya.EnabledValidator = false;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(3,7,'GrupoInscripcion');</script>");
		}

		private void lnkEscenario_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = false;
			ucEquipos.EnabledValidator = false;
			ucEscenario.EnabledValidator = true;
			ucPublicosIngresos.EnabledValidator = false;
			ucServicios.EnabledValidator = false;
			ucTipoCapacidad.EnabledValidator = false;
			ucTramoya.EnabledValidator = false;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(4,7,'GrupoInscripcion');</script>");
		}

		private void lnkTramoya_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = false;
			ucEquipos.EnabledValidator = false;
			ucEscenario.EnabledValidator = false;
			ucPublicosIngresos.EnabledValidator = false;
			ucServicios.EnabledValidator = false;
			ucTipoCapacidad.EnabledValidator = false;
			ucTramoya.EnabledValidator = true;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(5,7,'GrupoInscripcion');</script>");
		}

		private void lnkEquipos_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = false;
			ucEquipos.EnabledValidator = true;
			ucEscenario.EnabledValidator = false;
			ucPublicosIngresos.EnabledValidator = false;
			ucServicios.EnabledValidator = false;
			ucTipoCapacidad.EnabledValidator = false;
			ucTramoya.EnabledValidator = false;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(6,7,'GrupoInscripcion');</script>");
		}

		private void lnkPublicosIngresos_Click(object sender, System.EventArgs e)
		{
			ucCaracterizacion.EnabledValidator = false;
			ucEquipos.EnabledValidator = false;
			ucEscenario.EnabledValidator = false;
			ucPublicosIngresos.EnabledValidator = true;
			ucServicios.EnabledValidator = false;
			ucTipoCapacidad.EnabledValidator = false;
			ucTramoya.EnabledValidator = false;
            Anthem.Manager.RegisterClientScriptBlock(typeof(Page), "modDatoIdent", "<script language='javascript'>DesplegarGrupo(7,7,'GrupoInscripcion');</script>");
		}
		#endregion 

		#region - Metodos
		public void ModoActualizar()
		{
			WccAcciones1.Accion = Utilidad.Acciones.Actualizar;
			WccAcciones2.Accion = Utilidad.Acciones.Actualizar;

			WccAcciones1.UpdateVisible = true;
			WccAcciones2.UpdateVisible = true;

			ucCaracterizacion.Identificador = this.Identificador;
			ucCaracterizacion.EnabledValidator = true;
			lnkCaracterizacion.Enabled = true;
								
			tdGrupoInscripcion2.Visible = true;
			ucTipoCapacidad.Identificador = this.Identificador;
			ucTipoCapacidad.Visible = true;
			ucTipoCapacidad.EnabledValidator = false;
			lnkTipoCapacidad.Enabled = true;

			tdGrupoInscripcion3.Visible = true;
			ucServicios.Identificador = this.Identificador;
			ucServicios.Visible = true;
			ucServicios.EnabledValidator = false;
			lnkServicios.Enabled = true;

			tdGrupoInscripcion4.Visible = true;
			ucEscenario.Identificador = this.Identificador;
			ucEscenario.Visible = true;
			ucEscenario.EnabledValidator = false;
			lnkEscenario.Enabled = true;

			tdGrupoInscripcion5.Visible = true;
			ucTramoya.Identificador = this.Identificador;
			ucTramoya.Visible = true;
			ucTramoya.EnabledValidator = false;
			lnkTramoya.Enabled = true;

			tdGrupoInscripcion6.Visible = true;
			ucEquipos.Identificador = this.Identificador;
			ucEquipos.Visible = true;
			ucEquipos.EnabledValidator = false;
			lnkEquipos.Enabled = true;

			tdGrupoInscripcion7.Visible = true;
			ucPublicosIngresos.Identificador = this.Identificador;
			ucPublicosIngresos.Visible = true;
			ucPublicosIngresos.EnabledValidator = false;
			lnkPublicosIngresos.Enabled = true;
		}

		public void ModoAdicionar()
		{
			WccAcciones1.Accion = Utilidad.Acciones.Adicionar;
			WccAcciones2.Accion = Utilidad.Acciones.Adicionar;
						
			WccAcciones1.AddVisible = true;
			WccAcciones2.AddVisible = true;

			this.Identificador = 0;
			
			ucCaracterizacion.Identificador = 0;
			lnkCaracterizacion.Enabled = true;
														
			ucTipoCapacidad.Visible = false;			
			ucTipoCapacidad.Identificador = 0;
			lnkTipoCapacidad.Enabled = false;
			
			ucServicios.Visible = false;						
			ucServicios.Identificador = 0;
			lnkServicios.Enabled = false;

			ucEscenario.Visible = false;
			ucEscenario.Identificador = 0;
			lnkEscenario.Enabled = false;

			ucTramoya.Visible = false;						
			ucTramoya.Identificador = 0;
			lnkTramoya.Enabled = false;

			ucEquipos.Visible = false;
			ucEquipos.Identificador = 0;
			lnkEquipos.Enabled = false;

			ucPublicosIngresos.Visible = false;
			ucPublicosIngresos.Identificador = 0;
			lnkPublicosIngresos.Enabled = false;
		}

		public void BorrarCampos()
		{			
			ucCaracterizacion.ClearControls();
			ucTipoCapacidad.ClearControls();
			ucServicios.ClearControls();
			ucEscenario.ClearControls();
			ucTramoya.ClearControls();
			ucEquipos.ClearControls();
			ucPublicosIngresos.ClearControls();
		}
		#endregion 

		#region - Propiedades

		public decimal Identificador
		{
			get
			{
				if (ViewState["Identificador"] != null)
					return ((decimal) ViewState["Identificador"]);
				else
					return (0);
			}
			set { ViewState["Identificador"] = decimal.Parse(value.ToString()); }
		}

		public string Nombre
		{
			get {return ucCaracterizacion.Nombre;}
		}


		public string PestanaActiva
		{
			get {return txtGrupoActivo.Value;}			
		} 

		public DataSet CaracterizacionData
		{
			get
			{				
				return ucCaracterizacion.CaracterizacionData;
			}
			set 
			{
				ucCaracterizacion.CaracterizacionData = value;
			}
		}

		public InfraestructuraEntidadesCaracteristicasEspecificasData TipoCapacidadData
		{
			get
			{
				return ucTipoCapacidad.TipoCapacidadData;
			}
			set
			{
				ucTipoCapacidad.TipoCapacidadData = value;
			}
		}

		public DataSet ServiciosData
		{
			get
			{
				return ucServicios.ServiciosData;
			}
			set
			{
				ucServicios.ServiciosData = value;
			}		
		}

		public DataSet EscenarioData
		{
			get
			{
				return ucEscenario.EscenarioData;
			}
			set
			{
				ucEscenario.EscenarioData = value;
			}
		}

		public DataSet TramoyaData
		{
			get
			{
				return ucTramoya.TramoyaData;
			}
			set
			{
				ucTramoya.TramoyaData = value;
			}
		}

		public DataSet EquiposData
		{
			get
			{
				return ucEquipos.EquiposData;
			}
			set
			{
				ucEquipos.EquiposData = value;
			}			
		}

		public DataSet PublicosIngresosData
		{
			get
			{
				return ucPublicosIngresos.PublicosIngresosData;
			}
			set
			{
				ucPublicosIngresos.PublicosIngresosData = value;
			}			
		}

		#endregion 

		#region Web Form Designer generated code

		protected override void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		private void InitializeComponent()
		{
			this.lnkCaracterizacion.Click += new System.EventHandler(this.lnkCaracterizacion_Click);
			this.lnkTipoCapacidad.Click += new System.EventHandler(this.lnkTipoCapacidad_Click);
			this.lnkServicios.Click += new System.EventHandler(this.lnkServicios_Click);
			this.lnkEscenario.Click += new System.EventHandler(this.lnkEscenario_Click);
			this.lnkTramoya.Click += new System.EventHandler(this.lnkTramoya_Click);
			this.lnkEquipos.Click += new System.EventHandler(this.lnkEquipos_Click);
			this.lnkPublicosIngresos.Click += new System.EventHandler(this.lnkPublicosIngresos_Click);
			this.btnRegresar1.Click += new System.Web.UI.ImageClickEventHandler(this.btnRegresar1_Click);
			this.WccAcciones1.Delete_OnClick += new System.Web.UI.ImageClickEventHandler(this.WccAcciones1_Delete_OnClick);
			this.WccAcciones1.Update_OnClick += new System.Web.UI.ImageClickEventHandler(this.WccAcciones1_Update_OnClick);
			this.WccAcciones1.Add_OnClick += new System.Web.UI.ImageClickEventHandler(this.WccAcciones1_Add_OnClick);
			this.btnRegresar2.Click += new System.Web.UI.ImageClickEventHandler(this.btnRegresar1_Click);
			this.WccAcciones2.Delete_OnClick += new System.Web.UI.ImageClickEventHandler(this.WccAcciones1_Delete_OnClick);
			this.WccAcciones2.Update_OnClick += new System.Web.UI.ImageClickEventHandler(this.WccAcciones1_Update_OnClick);
			this.WccAcciones2.Add_OnClick += new System.Web.UI.ImageClickEventHandler(this.WccAcciones1_Add_OnClick);
			this.Load += new System.EventHandler(this.Page_Load);

		}

		#endregion

	}
}